package com.ctshk.rpc.localfun.req;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class LocalFunProductDetailReq implements Serializable {

    @NotNull
    private Long id;

    @ApiModelProperty(value = "所属城市")
    private Long cityId;

    @ApiModelProperty(value = "城市名称")
    private String cityName;

    @ApiModelProperty(value = "是否允许自由行打包(1 允许,2 不允许,3 只限打包)")
    private Integer allowPackage;

    @ApiModelProperty(value = "景点ID")
    private Long scenicId;

    @ApiModelProperty(value = "产品名称")
    private String name;

    @ApiModelProperty(value = "供应商")
    private Long supplierId;

    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    @ApiModelProperty(value = "负责人ID")
    private Long chargeUserId;

    @ApiModelProperty(value = "负责人名称")
    private String chargeUser;

    @ApiModelProperty(value = "适用人群ID")
    private Long intendedUserId;

    @ApiModelProperty(value = "适用人群")
    private String intendedUser;

    @ApiModelProperty(value = "使用有效期类型(1 固定天数 ,2 指定日期区间)")
    private Integer vaildType;

    @ApiModelProperty(value = "几日有效")
    private Double vaildDay;

    @ApiModelProperty(value = "有效期起始")
    private LocalDateTime vaildDayBegin;

    @ApiModelProperty(value = "有效期截至")
    private LocalDateTime vaildDayEnd;

    @ApiModelProperty(value = "门票主题")
    private String themeJson;

    @ApiModelProperty(value = "产品图片JSON")
    private String photosJson;

    @ApiModelProperty(value = "产品介绍")
    private String productIntroduces;

    @ApiModelProperty(value = "审批状态")
    private Integer approvalStatus;

    @ApiModelProperty(value = "入园须知")
    private String admissionNotes;

    @ApiModelProperty(value = "是否需要二次确认")
    private Integer needDoubleCheck;

    @ApiModelProperty(value = "预订后是否可退")
    private Integer allowRefund;

    private List<LocalFunResourceStrategyReq> scenicResourceStrategy;

    private Long attrId1;
    private Long attrId2;

}
